export default {
  // 获取当前位置
  async getCurrentLocation() {
    return new Promise((resolve, reject) => {
      // 先检查权限
      uni.getSetting({
        success: (res) => {
          if (!res.authSetting['scope.userLocation']) {
            // 如果没有权限，先申请权限
            uni.authorize({
              scope: 'scope.userLocation',
              success: () => {
                // 获取位置
                this.getLocation(resolve, reject);
              },
              fail: (err) => {
                console.error('获取位置权限失败：', err);
                // 引导用户去设置页面开启
                uni.showModal({
                  title: '提示',
                  content: '需要获取位置权限才能为您展示附近加油站，是否去设置？',
                  success: (res) => {
                    if (res.confirm) {
                      uni.openSetting();
                    }
                  }
                });
                reject(err);
              }
            });
          } else {
            // 已有权限，直接获取位置
            this.getLocation(resolve, reject);
          }
        },
        fail: reject
      });
    });
  },

  // 获取位置的具体实现
  getLocation(resolve, reject) {
    uni.getLocation({
      type: 'gcj02',
      isHighAccuracy: true, // 开启高精度定位
      highAccuracyExpireTime: 3000, // 超时时间，单位 ms
      success: res => {
        resolve({
          latitude: res.latitude,
          longitude: res.longitude
        });
      },
      fail: err => {
        console.error('获取位置失败：', err);
        reject(err);
      }
    });
  }
} 